HOW TO: Wie Installiere ich GIT und kann dieses Notebook öffnen¶

Wir werden alle unsere Übungen mit Git bearbeiten. Dies wird euch helfen, sobald ihr nicht mehr alleine an einem Projekt arbeitet oder ihr euren Code versionieren wollt (btw das solltet ihr IMMER machen). GitHub ist eine opensource Plattform, die es uns einfach ermöglicht eigene Repositories (Versionierte Ordner) zu hosten. Dazu müsst ihr, falls ihr noch keinen Account habt dort einen Account erstellen.

DISCLAIMER

Wir zeigen euch 2 Wege zur Installation von GIT. Entweder nutzt ihr den GitHub Client, der eine Graphische Oberfläche hat oder ihr nutzt das Git Command Line Interface (kurz CLI), mit dem ihr über die Kommandozeile alles machen könnt, was auch mit dem GitHub Client funktioniert. Wer noch nie mit einem Terminal gearbeitet hat sollte der Client Installation folgen und später mit dem GitHub Client arbeiten.

Schritt 1 Anmelden bei GitHub¶

a) Account auf Github erstellen Anmeldung


Schritt 2 Installieren Git Client oder Git CLI¶

Github Client¶

a) Download des Github Clients Link to the Github client for Mac and Windows.

Git CLI¶

Öffne dein Terminal und gebe den folgenden Befehl ein:

a) Dieser Befehl zeigt dir welche Version von Git installiert wurde

git --version

    #Erfolgsmeldung: z.B.: git version 2.34.1
    #Misserfolgmeldung zsh: command not found: git

Wenn du Git nicht vorher installiert hast, installiere Git mit dem Package Manager deiner Wahl oder solltest du einen Windows Rechner haben, kannst du auch gerne dieser Installation folgen Install Git auf Windows

Mac zum Beispiel mit Homebrew

brew install git

b) Die beiden Befehle sind notwendig, damit jeder weiß wer welchen Commit gesetzt hat

git config --global user.name "Your Name"
    git config --global user.email "your@email.com"

c) Damit wir eine Verbindung mit einem remote Repository brauchen müssen wir eine Secure Shell Verbindung mit GitHub aufbauen, dafür müssen wir uns einen SSH Key generieren und den bei GitHub hinterlegen. Setup SSH connection Gute Anleitung

Gib folgenden Befehl im Terminal ein

ssh-keygen -t rsa -b 4096
  • Folge der Anleitung im Terminal. Speicher den SSH Key in dem Ordner /User/jbh/.ssh/ (eventuell musst du den .ssh Ordner erst noch anlegen) und vergebe einen Namen für den Key z.B.: id_github. Gebe gerne ein passphrase an und merke ihn dir.
  • Wechsel in den Ordner und öffne den id_github.pub key mit dem Editor deiner Wahl zum Beispiel nano oder vim und kopiere den key.
  • Gehe in die GitHub Account Settings LINK klicke auf New SSH key und füge den Key dort ein

Letzter Schritt, füge deinen Key mit ss-add in den SSH Agent hinzu. Nutze dazu den Pfad zu deinem Privat Key

ssh-add path/to/key

Beispiel:

ssh-add/User/jbh/.ssh/id_github

Schritt 3 "Download" the repo and make a local copy¶

Go to the following Website Repository Praktische Datenanalyse

Github Client¶

Öffne deine Github Client und clicke auf Clone Repository

Nun gehe auf den Reiter URL und gib folgende URL ein: julienboth/pda und wähle den lokalen Pfad, in dem du das Repository speichern möchtest. Danach klicke auf Clone. Fertig das Remote Repository ist nun auf deinem Laptop gecloned.

Git CLI¶

Verwende dein Terminal und gehe in den Ordner, in den du das Repository speichern möchtest Zum Beispiel "~/Documents/98_Lecture/pda_leuphana". Dort gibst du dann folgenden Befehl ein:

git clone git@github.com:julienboth/pda.git

Folge den Instructions im Terminal. Danach sollte das Repository in deinem Ordner erstellt worden sein


Schritt 4 Erstelle einen Branch mit deinem Namen¶

Github Client¶

Ein Branch erstellst du, damit du dort an den Themen arbeiten kannst, ohne am Master Branch etwas zu verändern. Wir nutzen dieses Prinzip in unserer Übung, damit du ungestört an den Themen arbeiten und trotzdem die neuen Übungen konsequent herunterladen kannst. Gehe dazu einfach oben im Kontextmenü auf Branch und dann auf New Branch. Benenne den Brach gerne nach folgendem Schema vorname_nachname

Git CLI¶

Ein Branch erstellst du, damit du dort an den Themen arbeiten kannst, ohne am master branch etwas zu verändern. Wir nutzen das in der Übung, damit du ungestört an den Themen arbeiten kannst und trotzdem die neuen Übungen konsequent herunterladen kannst.

git branch vorname_nachname

Als nächstes musst du noch in den Branch wechseln. Dies solltest du jedes mal machen, wenn du anfängst zu programmieren. Achte stehts darauf, dass du in dem Branch bist bevor du deine Änderungen stagest, committest und pushed.

git checkout vorname_nachname

Schritt 5 Updaten des Repos¶

Sobald neue Übungsunterlagen vorhanden sind, kannst du mit einem git pull die aktuellen Änderungen von dem remote Server herunterladen und in deinen localen workspace schreiben

Github Client¶

Dazu gehst du in deinen GitHub Client und gehst in das entsprechende Repository. In dem Fall pda und klickst auf Fetch origin, damit aktualisiert der Local Client und guckt ob es etwas Neues in dem Remote Repository gibt. In dem Fall hat er eine Änderung gesehen. Nun klickst du auf Pull origin und dein Repository hat die neusten Änderungen.

Git CLI¶

Dazu musst du in das Verzeichnis wechseln und dort einfach folgenden Befehl eingeben. Die Remote Änderungen werden dann in dein lokales Repository in dem jeweiligen Branch heruntergeladen. Klassischerweise in den Main Branch.

git pull

Schritt 6 Änderungen speichern¶

Der Standard workflow sieht wie folgt aus:

  1. Wechsel in deinen branch mit checkout vorname_nachname
  2. Änderungen mit git status anzeigen lassen
  3. Änderungen an den Dateien mit git add Pfad zur Datei in den Index speichern
  4. Änderungen aus dem Index mit git commit -m "Beschreibung des Commits" speichern
  5. Lokale Änderungen mit git push auf den Remote Server pushen

Hier ein Beispiel in der CLI wie der workflow aussehen kann

Nach deinen gesamten Änderungen gibst du git status ein und siehst, dass einige Änderungen modifiziert sind, das heißt diese waren schon im Repo vorher und wurden nur verändert und einige sind noch untracked, d.h. diese sind neu hinzugekommen.

Mit einem git add . fügst du alle Veränderungen am Repo in deinem Branch in den Index

Danach sehen die Änderungen grün aus und es wird beschrieben was verändert wurde

Wenn du damit zufrieden bist kannst du nun mit einem git commit -m "updated Übung1" einen Commit setzen, damit hast du diesen Commit (diese Version) in deinem lokalen Repository gesetzt und könntest jeder Zeit auf diese Version zurückspringen

Um deine Veränderungen nun noch auf den Remote Server zu pushen nutzt du einfach git push


Schritt 7 Änderungen vom remote Server holen (bei neuen Übungen)¶

Wenn du neue Dateien in dein Repository holen willst, kannst du mit einem git pull diese Änderungen vom Remote Repository in dein lokales Repository ziehen. Dazu solltest du in deinem derzeitigen Repository sein.

git pull

Weitere Informationen¶

Wichtige Befehle, die wir aber erst einmal nicht brauchen werden¶

To see all the commits that were made for our project, you can use the following command:

git log

You can merge branches in situations where you want to implement the code changes that you made in an individual branch to a different branch. For example, after you fully implemented and tested a new feature in your code, you would want to merge those changes to the stable branch of your project (which is usually the default master branch).

To merge the changes from a different branch into your current branch, you can use this command:

git merge <branch-name>

Shows the differences between master and your local version

git diff

Weiterführende Links¶

  • Git workflow info Link
  • Git official documentation: https://git-scm.com/doc
  • The free Pro Git book: https://git-scm.com/book/en/v2
  • Learn about GitHub: https://guides.github.com/
  • Cat git Link
  • Learn git branching
  • Install Git auf Windows
In [ ]: